/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.dojotec.biblioteca.jsf.application;

import com.dojotec.biblioteca.jsf.dao.EmprestimoDAO;
import com.dojotec.biblioteca.jsf.domain.Emprestimo;
import com.dojotec.biblioteca.jsf.domain.EmprestimoRepository;
import com.dojotec.biblioteca.jsf.domain.ItemEmprestimo;
import java.util.Calendar;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;


/**
 *
 * @author igocoelho
 */
public class EmprestimoBean {

    private DataModel emprestimos = null;
    private EmprestimoRepository emprestimo = new EmprestimoDAO();
    private Emprestimo emprestimoPojo = new Emprestimo();
    
    public EmprestimoBean() {
        
    }
    
    public String gotoNovaEmprestimo() {
        getEmprestimoPojo().setDataEmprestimo(new java.sql.Date(Calendar.getInstance().getTimeInMillis()));
        return "novoEmprestimo";
    }       
    
    public String gotoAlteraEmprestimo() {
        setEmprestimoPojo((Emprestimo)emprestimos.getRowData());
        return "alteraEmprestimo";
    }
    
    public String gotoListaEmprestimos() {
        return "listaEmprestimos";
    }

    public DataModel getEmprestimos() {
        return emprestimos;
    }

    public void setEmprestimos(DataModel emprestimos) {
        this.emprestimos = emprestimos;
    }

    public EmprestimoRepository getEmprestimo() {
        return emprestimo;
    }

    public void setEmprestimo(EmprestimoRepository emprestimo) {
        this.emprestimo = emprestimo;
    }

    public Emprestimo getEmprestimoPojo() {
        return emprestimoPojo;
    }

    public void setEmprestimoPojo(Emprestimo emprestimoPojo) {
        this.emprestimoPojo = emprestimoPojo;
    }
    
    public DataModel getTodosEmprestimos() {
        setEmprestimos(new ListDataModel(getEmprestimo().buscarTodos()));
        return getEmprestimos();
    }
    
    public String salvar() {
        try {
            emprestimoPojo = emprestimo.salvar(getEmprestimoPojo());            
            return "novoEmprestimo";
        } catch (Exception e) {
            return "failure";
        }
    }
    
    public String atualizar() {
        try {
            emprestimo.atualizar(getEmprestimoPojo());
            return gotoListaEmprestimos();
        } catch (Exception e) {
            return "failure";
        }    
    }
    
    public String excluir() {
        try {
            setEmprestimoPojo((Emprestimo)emprestimos.getRowData());
            emprestimo.excluir(getEmprestimoPojo());
            return gotoListaEmprestimos();
        } catch (Exception e) {
            return "failure";
        }
    }
}
